//
//  Shader.hpp
//  OpenGLDemo1
//
//  Created by HFY on 2018/6/20.
//  Copyright © 2018年 Demo. All rights reserved.
//

#ifndef Shader_hpp
#define Shader_hpp

#include <glad/glad.h>
#include <string>

class Shader {
public:
    // 构造器读取并构建着色器
    Shader(const char* vertexPath, const char* fragmentPath);
    
    // 使用/激活程序
    void use();
    
    // uniform工具函数
    void setBool(const std::string &name, bool value) const;
    void setInt(const std::string &name, int value) const;
    void setFloat(const std::string &name, float value) const;
    void setVec4(const std::string &name, float v0, float v1, float v2, float v3) const;
    void setMatrix4f(const std::string &name, float *values) const;
private:
    GLuint ID;
};

#endif /* Shader_hpp */
